POV-Ray : Newsgroups : povray.binaries.utilities : Smooth transitions between CSGs ...Chris Colefax? : Re: Smooth transitions between CSGs ...Chris Colefax? Server Time
29 Jun 2024 01:50:06 EDT (-0400)
  Re: Smooth transitions between CSGs ...Chris Colefax?  
From: Chris Colefax
Date: 19 Apr 2000 20:29:37
Message: <38fe4f71@news.povray.org>
Geoffrey Potvin <gpo### [at] istarca> wrote:
> I have created several complex models (deeply nested CSGs) wherein the
> smooth transitions between CSGs would greatly enhance the models.
> Please refer to my posting of "Old Typewriter" in  the
> povray.binaries.images and
> Tor Olav Kristensen's posting in the same newsgroup entitled "playing with
> CSGs".
>
> I can't help thinking that Chris Colefax might get stirred up by these
> possibilities as well as other such talented "POV-Ray" "plug-in" writers.
>
> I am fairly advanced at playing around with the includes and placement of
> such work in the POV-Ray scene language, unfortunately ...being more
> artistically inclined, I have more of an aptitude for application of this
> stuff ...not writing it.
>
> What are the possibilities? ...or are there just too many possible
variables
> involved?
>
> Having worked extensively in mesh based modelers, I can see the
restrictions
> in trying to create smooth transitions between primitives and CSG objects
in
> general. Meshes do not  have this problem, however, they never have those
> remarkably smooth surfaces as rendered by primitives. Such a plug-in would
> greatly enhance the possibilities of the POV-Ray rendering engine!

The ability to smooth off CSG transitions has actually been suggested to me
a number of times in the past, and I agree that unwanted sharp edges can
detract from otherwise excellent CSG models.  As Howie and others have shown
blobs can be extremely powerful, but they aren't always suitable for
accurate work, involving planes and such.

There are a couple of solutions I can think of - I haven't checked out Tor's
work, but with the right maths many cases could conceivably be handled using
spheres, cylinders, and torii for the transitions.  I can imagine, though,
that this would get fairly complicated fairly fast(!), and might end up
adding a lot to the memory requirements of a scene (e.g. a simple box
smoothed using CSG requires 23 objects or more, depending on the method
used).

Using modified normals might offer a solution, but applying the right
perturbations to just the transition areas would also be very complicated,
and you'd still have the usual sharp shadow problems, etc.

It seems to me that the best solution, then, would be a procedural method
handled at trace-time.  This would work similar to blobs, with each object
having a threshold extending either side of its surface.  Surfaces outside
of these threshold intersections would be rendered as per normal CSG (giving
accurate placement), but where thresholds do intersect they would be
averaged like blobs to give a smooth transition.

Finally, I believe Chris Huff has done some work along these lines, using
isosurfaces.  His messages should still be accessible on the server, as
should he...


Post a reply to this message

Copyright 2003-2023 Persistence of Vision Raytracer Pty. Ltd.